声明
本文是学习GB-T 33267-2016 机器人仿真开发环境接口. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们
1 范围
本标准规定了机器人仿真开发环境中的仿真环境开发接口、半实物仿真接口和仿真环境人机交互
接口,以及仿真环境接口的分类和具体要求。
本标准适用于机器人软硬件开发者。
2 术语和定义
下列术语和定义适用于本文件。
2.1
机器人仿真开发环境 robot simulation development
environment;RSDE
为机器人设计者提供用于图形化界面下进行机器人开发的软件平台,建立与实际机器人性能一致
的仿真机器人,使机器人的开发不依赖实际机器人实现离线编程,以提高机器人开发效率,便于机器人
实时仿真的可视化。
注: 包括统一的编程环境、统一的编译执行环境、可重用的组件库、完备的调试/仿真环境、对多种机器人硬件设备
的"驱动"程序支持及通用的常用功能控制组件,例如计算机视觉技术、导航技术和机械手臂控制等。
2.2
用户 user
机器人仿真开发环境的使用者。
2.3
物理引擎 physics engine
通过为仿真对象赋予真实的物理属性的方式来计算运动、旋转和碰撞反映的技术,使实体的运动符
合机器人动力学约束。
2.4
渲染引擎 rendering engine
能够赋予仿真对象真实的仿真环境,并高效地显示清晰画面的可视化技术。
2.5
仿 真 接 口 simulation interface
机器人仿真开发环境与外部模块进行通信和数据交互的通道。
2.6
仿 真 实 体 simulation entity
用来构建仿真场景中仿真对象的一些基本元素。
注:如正方体、胶囊体和球体。
2.7
仿真时间 simulation time
仿真运行的时间。
2.8
共享对象 shared objects/shared libraries
能被可执行文件和其他二进制文件共享的二进制文件,在程序加载或执行过程中被加载到内存中。
GB/T 33267—2016
3 缩略语
下列缩略语适用于本文件。
API: 应用编程接口(Application Programming Interface)
ROS: 机器人操作系统(Robot Operation System)
URDF: 统一机器人描述格式(Unified Robot Description Format)
XML: 可扩展标记语言(Extensible Markup Language)
4 机器人仿真开发环境
机器人仿真开发环境包括功能模块和应用接口模块。功能模块包括为仿真提供核心功能的物理运
算模块(主要由物理引擎实现)和图形渲染模块(主要由渲染引擎实现),以及一些基本的辅助功能模块
(模型编辑、结果输出、信息记录等)。应用接口模块根据使用者的不同主要分为以下三种接口:仿真环
境开发接口、半实物仿真接口、人机交互接口。
机器人仿真开发环境总体结构如图1所示。
style="width:9.28681in;height:6.92708in" />
图 1 机器人仿真开发环境总体结构图
5 仿真环境开发接口
5.1 模型构造接口
5.1.1 目的
为了机器人仿真开发环境的通用性,通过统一模型描述文件,合理地构造仿真模型、机器人的物理
模型和各种不同的传感器模型,消除模型对仿真产生的兼容性影响。
GB/T 33267—2016
5.1.2 模型构造方式
模型构造包括合理的构建机器人工作的环境模型、机器人的物理模型以及各种传感器模型。模型
的构造通常有两种方式:
一种是利用机器人仿真开发环境提供的机构构件库以及其他的资源库构建; 一
种是将已经设计好的模型文件直接导入机器人仿真开发环境。由于目前存在多种模型描述文件,所以
机器人仿真开发环境应该支持常用的多种模型描述文件的导入。提取仿真所需要的各类模型数据。
5.1.3 仿真对象模型描述格式
机器人仿真开发环境应该采用统一的仿真对象描述格式,仿真对象描述格式采用XML
文件描述
格式或 ROS 中的 URDF 对象描述格式。
5.1.4 模型描述格式一般要求
机器人仿真开发环境采用仿真对象描述格式来描述仿真对象,仿真对象描述文件封装了所有必要
的对机器人进行仿真的信息,这些信息必须具有能够描述仿真对象(工业机器人、服务机器人及人形机
器人)的基本参数信息,如重力、质量、时间步长、碰撞信息、连杆信息、全局坐标及位姿等信息。另外在
特定的机器人仿真开发环境下(如水下机器人仿真开发环境)可以有特有的扩展参数。
例如,采用XML 模型的文件结构描述如下:
〈Robot name 〉 \<!-机器人名字->
\<Body name 〉 \<!-仿真实体名字->
\<Translation>P1x P1y P1z\</Translation 〉 \<!-仿真实体位姿->
\<RotationAxis>R1x Rly Rlz Rot1\</RotationAxis〉
〈Geom type) \<!-仿真实体几何形状->
\<Translation>P2x P2y P2z\</Translation〉
\<RotationAxis>R2x R2y R2z Rot2\</RotationAxis〉
\<!-不同几何体几何描述不一样,长方体如下: ->
\<Extents>Ex Ey Ez\</Extents〉
\<!-如果仿真环境具有物理引擎,则有重力、质量、摩擦力、碰撞等物理信息-->
\<!--物理引擎中重力->
\<!--仿真实体质量->
\
\
\
\<!--链接的仿真实体->
\<!--关节的位置-->
\<!--关节限值-->
\<!--关节旋转轴->
\——平移模式。用户可以通过按住鼠标右键或者点击工具栏中的平移工具并拖拽使仿真实体上、
下、左、右平移。
——缩放模式。用户可以通过滑动鼠标滚轮或者键盘快捷键来实现对仿真实体的放大和缩小。
——视角模式。用户可以通过键盘快捷键来实现场景视角的转变,如上、下、前、后、左、右等转换视
角的操作,并且可以改变视角转变的速度,此时不能改变模型状态。
7.3 场景编辑窗口
场景的编辑窗口用于对三维场景进行编辑,在场景中添加、删除实体等操作,并且能为仿真实体添
加模型,修改场景及各个实体的参数。场景编辑窗口主要包括:场景目录窗口、属性窗口、模型库窗口。
—场景目录窗口。用户可以通过场景目录窗口添加和删除场景中的仿真实体模型(长方体、圆柱
体、球体、胶囊体等)来搭建机器人模型,最终以树状结构的形式表现出来。树状结构图应包括
机器人仿真实体的名称(如 robot),robot 下又包括各个子实体的名称(如
body、waist、arm 等)以及连接各个子实体的关节(如joint)。
在树状结构图中可以建立多个父实体,父实体下
又可以包含多个子实体及关节。
——属性窗口。在场景目录窗口中点击搭建的仿真实体模型,会显示每一个模型的不同属性参数,
包括场景中物体的尺寸大小、坐标位置、质量、摩擦力、重力等。
——模型库窗口。模型库窗口中包含了仿真环境自带的各种机器人模型。在模型搭建时可以调用
模型库中的模型对仿真实体进行渲染。
7.4 菜单栏
菜单栏除提供保存、打开、退出、新建、导入和导出场景文件等功能外,还允许访问仿真环境的其他
功能。
菜单栏设计模式:如"文件"主菜单下包括"保存"、"打开"、"退出"、"新建"等子菜单;"编辑"主菜单
下包括"重置场景"和"重置模型"等子菜单;"视图"主菜单下包括"重置视图"和"全屏"等子菜单。
开发者可以根据仿真环境开发需求在菜单栏中添加或删除子菜单的功能,并在用户操作说明中进
GB/T 33267—2016
行说明。
7.5 工具栏
工具栏在三维场景的上端,显示最常用的命令,用来操纵三维场景中要实现的功能,如平移、旋转、
视角变换等。
根据仿真环境开发需要,开发者可以自行添加常用的工具,如添加一些常用仿真实体模型来构建场
景,或者添加聚光灯、方向灯和点光源等来允许用户向三维场景中插入光照。
7.6 状态栏
状态栏实时显示三维场景及模型的各种状态信息,如显示选择模式、所选对象名称、模型的坐标、旋
转角度等信息。
7.7 仿真播放器
仿真播放器在仿真环境的底端,有类似于一个标准的 CD
或者磁带播放器这样的控制装置。当仿
真环境进行机器人仿真时用户可以通过仿真播放器对仿真进行开始、暂停、快进、后退等控制。仿真播
放器实时显示仿真时间以及快进时间等。
上述仿真环境图形界面要实现的人机交互功能可根据开发者开发需求增添其他功能,需在用户操
作说明中进行说明。
GB/T 33267—2016
附 录 A
(资料性附录)
仿真对象模型描述文件
机器人仿真对象模型描述文件如下:
和缩小。
——视角模式。用户可以通过键盘快捷键来实现场景视角的转变,如上、下、前、后、左、右等转换视
角的操作,并且可以改变视角转变的速度,此时不能改变模型状态。
7.3 场景编辑窗口
场景的编辑窗口用于对三维场景进行编辑,在场景中添加、删除实体等操作,并且能为仿真实体添
加模型,修改场景及各个实体的参数。场景编辑窗口主要包括:场景目录窗口、属性窗口、模型库窗口。
—场景目录窗口。用户可以通过场景目录窗口添加和删除场景中的仿真实体模型(长方体、圆柱
体、球体、胶囊体等)来搭建机器人模型,最终以树状结构的形式表现出来。树状结构图应包括
机器人仿真实体的名称(如 robot),robot 下又包括各个子实体的名称(如
body、waist、arm 等)以及连接各个子实体的关节(如joint)。
在树状结构图中可以建立多个父实体,父实体下
又可以包含多个子实体及关节。
——属性窗口。在场景目录窗口中点击搭建的仿真实体模型,会显示每一个模型的不同属性参数,
包括场景中物体的尺寸大小、坐标位置、质量、摩擦力、重力等。
——模型库窗口。模型库窗口中包含了仿真环境自带的各种机器人模型。在模型搭建时可以调用
模型库中的模型对仿真实体进行渲染。
7.4 菜单栏
菜单栏除提供保存、打开、退出、新建、导入和导出场景文件等功能外,还允许访问仿真环境的其他
功能。
菜单栏设计模式:如"文件"主菜单下包括"保存"、"打开"、"退出"、"新建"等子菜单;"编辑"主菜单
下包括"重置场景"和"重置模型"等子菜单;"视图"主菜单下包括"重置视图"和"全屏"等子菜单。
开发者可以根据仿真环境开发需求在菜单栏中添加或删除子菜单的功能,并在用户操作说明中进
GB/T 33267—2016
行说明。
7.5 工具栏
工具栏在三维场景的上端,显示最常用的命令,用来操纵三维场景中要实现的功能,如平移、旋转、
视角变换等。
根据仿真环境开发需要,开发者可以自行添加常用的工具,如添加一些常用仿真实体模型来构建场
景,或者添加聚光灯、方向灯和点光源等来允许用户向三维场景中插入光照。
7.6 状态栏
状态栏实时显示三维场景及模型的各种状态信息,如显示选择模式、所选对象名称、模型的坐标、旋
转角度等信息。
7.7 仿真播放器
仿真播放器在仿真环境的底端,有类似于一个标准的 CD
或者磁带播放器这样的控制装置。当仿
真环境进行机器人仿真时用户可以通过仿真播放器对仿真进行开始、暂停、快进、后退等控制。仿真播
放器实时显示仿真时间以及快进时间等。
上述仿真环境图形界面要实现的人机交互功能可根据开发者开发需求增添其他功能,需在用户操
作说明中进行说明。
GB/T 33267—2016
附 录 A
(资料性附录)
仿真对象模型描述文件
机器人仿真对象模型描述文件如下:
GB/T 33267—2016
5.2 控制算法接口
5.2.1 目的
为了缩短新算法的设计时间、提高算法的稳定性和鲁棒性、保证各算法不互相干扰,控制算法接口
需提供适合不同算法设计和实现所需要的基本模型结构、标准的算法和通用的编程语言接口。
5.2.2 参数的传递
机器人仿真开发环境需提供机器人接口类或结构体,控制算法读取和修改仿真环境中的类对象或
结构体参数,并向仿真环境返回参数值,从而控制机器人运动。机器人的参数主要有机器人的关节、机
器人关节旋转的角度、机器人关节旋转的速度、机器人关节旋转的加速度、机器人某一部位的位置、机器
人的代号等。
当外部控制算法的接口参数与仿真环境的算法接口参数不一致时:
——通过中间件去转换二者的接口参数,使其一致。
—
当仿真环境需要大量重复的调用多种控制算法时,通过大量中间件实现控制算法是不可行的。
因此,可以通过给各个共享对象编写一个接口相同的参数初始化函数,算法运行前调用该函数
来设定参数。
不管是采用中间件还是编写参数初始化函数都是不方便的,因此仿真环境和外部控制环境的参数
最好采用统一的接口标准。
5.2.3 控制算法的调用
规定控制算法与机器人仿真开发环境之间传递的数据包的格式以及控制算法的编程语言。仿真环
境调用控制算法主要可以通过调用并解析控制算法的共享对象文件或解释脚本文件的方法进行控制算
法仿真。
调用共享对象或脚本文件实现控制算法与仿真环境的互通的方式和要求:
——仿真环境可以在其菜单中加入增、删共享对象或脚本文件命令,用户只需输入共享对象或脚本
文件的名字和路径即可方便地添加、删除算法共享对象或脚本文件;
——仿真环境加载共享对象或脚本文件完成后的运行过程中,解析共享对象或解释脚本文件,不断
地循环调用控制算法函数,获得控制值,完成仿真环境中机器人的一系列仿真行为。
6 半实物仿真接口
6.1 概述
具有实物接口的机器人仿真开发环境可以将通过仿真获得的参数或者经过验证的算法方便地转入
实物系统中进行进一步验证。而且具有一组标准接口的机器人仿真开发环境将增加其通用性,可以应
用于不同结构的实物系统。通过连接实物系统的仿真,可以真实地反映出实物控制器的动态特性、静态
特性和非线性因素等。
6.2 硬件在回路仿真接口
6.2.1 仿真原理
硬件在回路仿真是实物示教盒控制器和虚拟仿真对象组成的一种半实物仿真。硬件在回路仿真规
等控制。仿真播
放器实时显示仿真时间以及快进时间等。
上述仿真环境图形界面要实现的人机交互功能可根据开发者开发需求增添其他功能,需在用户操
作说明中进行说明。
GB/T 33267—2016
附 录 A
(资料性附录)
仿真对象模型描述文件
机器人仿真对象模型描述文件如下:
GB/T 33267—2016
定实物控制器与机器人仿真开发环境之间的数据传递格式。机器人仿真开发环境将传感器状态数据以
及控制变量返回给实物控制器,实物控制器根据返回的数据,改变控制变量的大小。这种仿真试验将仿
真对象的动态特性通过建立数学模型、编程,在计算机上运行。此外要求有相应的各种模拟传感器等的
物理效应设备。由于在回路中接入了实物,硬件在回路仿真系统要求必须实时运行。
6.2.2 接口技术组成
硬件在回路仿真试验中,相关接口技术如下:
模拟量的输入(AI) 和输出(AO),
用于设备状态模拟量的采集和物理设备驱动,如电机驱动、
模拟信号的采集和转换;
——数字量的输入(DI) 和输出(DO),
用于设备间数字通信和计算机之间的数字信号传递,如开关
信号、电平信号;
——仿真实时数据通信,用于组成基于复杂协议的仿真闭环数据流,大多采用专用设备(如光网络)
或者通用设备(如以太网)等。
6.3 快速控制原型仿真接口
6.3.1 仿真原理
快速控制原型仿真是虚拟控制器和实际对象组成的一种半实物仿真。快速控制原型仿真通过实时
测试,在设计初期发现存在的问题,并修改原型或参数,再进行实时测试,这样反复进行,最终产生一个
完全面向用户需求的合理可行的控制原型。
6.3.2 接口技术组成
快速控制原型仿真试验中,相关接口技术如下:
——提供丰富的I/O 接口支持;
— 提供完善的API 接口函数,可以使用Labview、Simulink
等虚拟现实工具开发上层应用程序,
与运行的模型实现实时交互;
——能支持众多的工业级标准卡,能与其他用户制定的接口卡或数据总线卡集成;
——与 TCP/IP 等协议进行通信。
7 人机交互接口
7.1 概述
机器人仿真开发环境中的人机交互接口主要功能是使用户能够很友好地与机器人仿真开发环境进
行信息交互。人机交互接口通过现有的图形用户接口技术,语音技术等可以有效地增强系统的人机交
互能力,形象地展示机器人模块化机构构件库,方便快速搭建机器人原型系统,提高系统的工作效率,可
以将抽象的问题直观地展示在用户面前。基于图形用户接口技术的可视化机器人仿真开发环境,算法
编辑工具将得到简化,方便机器人模块化开发的总体进程。机器人仿真开发环境中提供的人机交互接
口主要以用户图形界面的形式表现出来。
机器人仿真开发环境图形用户界面是基于图形方式的人机界面,用于对仿真效果进行展示,并且用
户可以通过以下几个部分对仿真环境进行控制。
仿真开发环境图形用户界面见图2,应包括以下几个基本部分:三维场景,场景编辑窗口,菜单栏,
工具栏,状态栏以及仿真播放器。
GB/T 33267—2016
style="width:10.11339in;height:3.47336in" />机器人仿真开发环境图形用户界而
场景编辑窗口
仿真播放器
图 2 机器人仿真开发环境图形用户界面
7.2 三维场景
三维场景用于显示三维的仿真环境以及仿真环境中所有的模型。
一个图形用户界面可以有一个或
多个三维场景。在三维场景中用户可以通过点击鼠标、快捷键或工具栏中的按钮来实现对视角的控制。
三维场景中的视角的变换主要分为以下几种模式:
—旋转模式。用户可以通过按住鼠标中间键或者点击工具栏中的旋转工具并拖拽使仿真实体
旋转。
——平移模式。用户可以通过按住鼠标右键或者点击工具栏中的平移工具并拖拽使仿真实体上、
下、左、右平移。
——缩放模式。用户可以通过滑动鼠标滚轮或者键盘快捷键来实现对仿真实体的放大和缩小。
——视角模式。用户可以通过键盘快捷键来实现场景视角的转变,如上、下、前、后、左、右等转换视
角的操作,并且可以改变视角转变的速度,此时不能改变模型状态。
7.3 场景编辑窗口
场景的编辑窗口用于对三维场景进行编辑,在场景中添加、删除实体等操作,并且能为仿真实体添
加模型,修改场景及各个实体的参数。场景编辑窗口主要包括:场景目录窗口、属性窗口、模型库窗口。
—场景目录窗口。用户可以通过场景目录窗口添加和删除场景中的仿真实体模型(长方体、圆柱
体、球体、胶囊体等)来搭建机器人模型,最终以树状结构的形式表现出来。树状结构图应包括
机器人仿真实体的名称(如 robot),robot 下又包括各个子实体的名称(如
body、waist、arm 等)以及连接各个子实体的关节(如joint)。
在树状结构图中可以建立多个父实体,父实体下
又可以包含多个子实体及关节。
——属性窗口。在场景目录窗口中点击搭建的仿真实体模型,会显示每一个模型的不同属性参数,
包括场景中物体的尺寸大小、坐标位置、质量、摩擦力、重力等。
——模型库窗口。模型库窗口中包含了仿真环境自带的各种机器人模型。在模型搭建时可以调用
模型库中的模型对仿真实体进行渲染。
7.4 菜单栏
菜单栏除提供保存、打开、退出、新建、导入和导出场景文件等功能外,还允许访问仿真环境的其他
功能。
菜单栏设计模式:如"文件"主菜单下包括"保存"、"打开"、"退出"、"新建"等子菜单;"编辑"主菜单
下包括"重置场景"和"重置模型"等子菜单;"视图"主菜单下包括"重置视图"和"全屏"等子菜单。
开发者可以根据仿真环境开发需求在菜单栏中添加或删除子菜单的功能,并在用户操作说明中进
GB/T 33267—2016
行说明。
7.5 工具栏
工具栏在三维场景的上端,显示最常用的命令,用来操纵三维场景中要实现的功能,如平移、旋转、
视角变换等。
根据仿真环境开发需要,开发者可以自行添加常用的工具,如添加一些常用仿真实体模型来构建场
景,或者添加聚光灯、方向灯和点光源等来允许用户向三维场景中插入光照。
7.6 状态栏
状态栏实时显示三维场景及模型的各种状态信息,如显示选择模式、所选对象名称、模型的坐标、旋
转角度等信息。
7.7 仿真播放器
仿真播放器在仿真环境的底端,有类似于一个标准的 CD
或者磁带播放器这样的控制装置。当仿
真环境进行机器人仿真时用户可以通过仿真播放器对仿真进行开始、暂停、快进、后退等控制。仿真播
放器实时显示仿真时间以及快进时间等。
上述仿真环境图形界面要实现的人机交互功能可根据开发者开发需求增添其他功能,需在用户操
作说明中进行说明。
GB/T 33267—2016
附 录 A
(资料性附录)
仿真对象模型描述文件
机器人仿真对象模型描述文件如下:
!- 定义关节- >
(Joint circular="true" name ="Armo" type="hinge"
<Body>Base</Body〉
<Body>ArmO</Body〉
〈offsetfrom>Arm0</offsetfrom)
(weight>4</weight〉
(limitsdeg)-180180</limitsdeg>
axis>001</axis〉
(maxvel>3</maxvel)
〈resolution>1</resolution)
</Joint>
|
!-关节连杆1-->
!-关节连杆2-->
<!-负荷->
<!-角度限值--)
<!-旋转轴--)
! - 最大速度 - >
!-运动学解序号-->
|
(Body name ="RClaw" type ="dynamic">
offsetfrom>Arm0</offsetfrom〉
(Translation>0.0800.005</Translation〉
|
style="width:3.1001in" />GB/T 33267—2016
\<rotationaxis>001-90\models/demo/RClaw.iv\
(Joint name="jLgripper" type="hinge"〉
\<Body>Arm2\</body>
\<Body>RClaw\
\<Translation 〉0. 12500\</Translation)